# emacsclient
set $em_daemon ~/.local/bin/em
# make a quick launcher for specific things I do all the time
bindsym $mod+o mode "spotlight"
mode "spotlight" {
## specific files in a new emacs buffer
# dired in home
bindsym d exec $em_daemon ~/; mode "default"
# ibuffer
bindsym e exec $em_daemon --eval "(ibuffer)"; mode "default" #
# guaranteed new scratch buffer
bindsym s exec $em_daemon --eval '(switch-to-buffer (format-time-string "%d %b %Y %H:%M:%S"))'; mode "default"
## common binaries
bindsym f exec firefox ; mode "default"
bindsym h exec --no-startup-id zeal ; mode "default"
bindsym j exec --no-startup-id ~/.local/share/JetBrains/Toolbox/bin/jetbrains-toolbox ; mode "default"
bindsym m exec --no-startup-id mendeley ; mode "default"
bindsym k exec --no-startup-id keepassxc ; mode "default"
## special launchers
# ipython
bindsym i exec zsh -c '$alacritty -e ~/.local/pipx/venvs/ipython/bin/ipython'; mode "default"
# app switcher
bindsym a exec "rofi -show window -show-icons -theme gruvbox-dark-hard.rasi"; mode "default"
## just in case we did this by mistake
bindsym Escape mode "default"
}I mean, a pianist also doesn't put everything on their home row.
#generate password "pwgen -sy 32" and send to clipboard (uses s to generate more symbols) Also, the NEWLINE is stripped from the end. [tr -d '\n']
bindsym $mod+F12 exec "pwgen -sy 32 1 | tr -d '\n' | xclip"ps: I think I need to write an i3-whichkey that displays the current set of bindings because I often forget my own config :)
My mental sanity depends on some fixed beliefs. One of those is that every key sequence not involving the Win key is sent to and handled by the application in focus. Including F-keys, which many applications expect, in any case. Ex: F2=edit cell, F9=recalculate in Excel.
Global actions handled by the SO or DE must involve Win. Ex: Win+L lock screen.
And yes, Redmond-imposed Alt-Tab is an abomination: it should have been Win+Tab since the beginning.
The workflow you're proposing could be easily achieved with Win+ a carefully chosen letter. Benefits: 1. the letter is easier to remember; 2. You have 20-something free slots instead of 12 (excluding the ones that are already taken for standard actions like L for lock); 3. Most probably your fingers are already there and you have muscles memory of where the letters are; 4. Consistent, expected behavior of where keys are sent to.
F1 means help.
F2 means edit. It edits filenames on most operating systems if you have a file selected, and cells in most spreadsheet programs.
Alt+F4 means close.
Alt+tab means switch program.
Ctrl+C is copy, Ctrl+V is paste
I feel the same way about automobiles. It doesn't really matter whether we initially decided that the brake pedal would be the right or left of the gas pedal, but the fact that you can get in just about any car in the world and rely on the pedals to be in roughly the same place and do roughly the same thing is magical. If you're going to move them around, you better have a great reason.
The agreements we've achieved on standards, even when they're not perfect (QWERTY keyboard, heirarchical directory structure), should be considered global treasures and treated as such.
Hell no! As soon as you see a better way to do the same thing, you should allow the user to embrace the new way, while still keeping compatibility with the old one during a grace period.
I know that there are companies that behave differently. Their products are often cruft-ridden.
Automobiles are not exempted: just look at the clumsy, unnecessarily large shift gear lever that equips electric cars where the P R N D L modes are simulated in software. But hey the big lever between the seats is a sacred standard!
On Mac: cmd+tab for app switching, cmd+’ window switching, cmd+q is quitting app and all other shortcuts like copy&paste use cmd as well.
MS tried to introduce a similar scheme with Windows key when Win95 appeared, but they stopped halfway, and now there’s mess.
The problem, of course, is that all keys are already taken. Even F-keys are normally taken by volume control, playback control, brightness control, etc, and you have to press Fn-F1 to access F1. There are no spare keys, unless you buy a dedicated keypad.
So I, as likely everyone else, have a bunch of Win+something shortcuts, often involving 2 or 3 more keys. (Using KMonad to have modifiers on the home row helps.)
But the idea still stands. I already have shortcuts for the screen shot app, for the character map app, etc; why not add shortcuts for bringing Emacs or Firefox or a terminal to the front? I'll explore that.
Yep, by default, but you can change that in the settings. The the Fn modifier isn't required.
In the beginning, there was no "windows key".
Its purpose: control the (global) desktop environment (versus e.g. Alt/Ctrl/etc, which control the currently focused/active/local application).
Many "Windows key" shortcuts do desktop environment actions, hence the Windows key is the super key.
I’d like to add two parts:
1. Alt-Tab also works to select which Excel file you want in focus. I often have 10+ Excel files open and choose what I need with Alt-Tab-Arrow.
2. I can open all apps fast using Windows+Text. For example, Excel opens if I hit the Windows Key then “exc”, Chrome opens if I hit the Windows Key then “chr”, etc. Mac users can do the same by replacing the Windows Key with Command + Space.
I see no upside.
Win95 didn't even have the Win key.
Goodness. Think before you post. :) A thing cannot be an abomination for not making use of a building material which would not exist for most of the decade.
Edit: it was the same model as this reddit thread: https://www.reddit.com/r/vintagecomputing/comments/s518wo/i_...
Or even more crazy special commands like Alt+PrintScreen+REISUB?
REISUB is for truly exceptional circumstances; I used it 2-3 times in 20 years of using Linux on desktop.
Some keyboard come with dedicated volume +/-/mute keys which is great and frees up function keys.
I have "screenshotting" as a frequent need -- which in some occassions is an urgent one too :)
I use 3 different types of screen capture (current window, select a region, repeat last region) mapped to F6 F7 F8 on all my machines now which gets a lot of use.
F keys are in my opinion better used elsewhere when you can override screenshot key for screenshots.
I know lots of apps that use those F keys you've overriden.
I've mapped these in something like the last four window managers I use, and they've survived across probably a dozen physical keyboards now. Physical buttons for these things come and go but "WIN-Up" (or Super-Up if you prefer) has always been there.
(I did use a mac with a touch bar for a bit. Was that ever a train wreck for me, as you might expect. Fortunately, people don't seem to be copying them and dumping the function keys. I'm actually perfectly happy with them being a reduced-height bar across the top, as most laptops seem to have now. They don't need to be full height.)
In general, I say to anyone who makes a living on a computer... take control of your keyboard! I don't obsess on not using the mouse at all, but the keyboard can do a lot. There's a lot of keys on there, even ignoring the letter keys (which are densely enough "taken" by a lot of other things I don't tend to override them much).
Mute is the only one that has real urgency. The others are all second tier.
If I were to commit to a tiling WM I think I'd have to replace my main monitor with a 4k TV large enough to run at 1x UI scale without the UI elements being tiny so each window gets the virtual real estate required without effectively making the "tiling" part of the tiling WM moot by maximizing every window.
This probably boils down to the type of programs one uses though… someone living in chromeless text editors and terminals all day will probably fare better with tiling than someone who spends all their time in IDEs, graphics editors, and web browsers.
The tiling part is just there to making your windows manageable without the mouse and in a predictable way. Out of my 5 preassigned workspaces, 3 are fullscreen windows, 1 is split in 2, and 1 is split in 3 usually.
When I want a new program running big, then I either 1) close and make space in some workspace I'm not using right now, 2) send it to one of the empty "non-preassigned" spaces, or 3) change the current space layout into "all windows fullscreen" temporarily (with the new window on front, obviously).
For example mnemonic "M" for mail/email, so my xmonad.hs has something like:
, ((mod3Mask, xK_m), raiseNextMaybe (spawn "/usr/bin/someemailprog") (className =? "Someemailprog"))
Anytime I hid modifier+M, it will either go to the desktop and window with the mail program, or start the mail program if it's not yet running.Personally, my mail program is usually on desktop 1, but some of the other program, like Web browser, I move between desktops as needed for tasks. Hitting modifier+W always gets to it.
You arrive to your chat workspace, your works slack side by side with your favorite irc and matrix clients, all positioned and scaled perfectly every time. Adding more / fewer / swapping apps in is just a matter of invocation, and there the new configuration sits waiting.
The concept is expanded greatly. Shoutout to i3 and xmonad, for my personal setups.
That's basically what I do. A tiling WM and then one modifier key (Super in my case but whatever) and then keys to go to any workspace/virtual desktop I want.
And most of my workspaces are always organized in exactly the same manner, so I know exactly where is what.
It is a little amusing to see such a dramatic headline supported by the extremely elementary thesis that you should have kbd shortcuts for your favorite applications.
On top of that, numbered shortcuts for arbitrary apps is way worse than using Super+[arbitrary key].
Tiling helps, but I just have a bunch of shortcuts that tile a particular window just so under xfwm4.
You can assign workspaces to different monitors, if I understand the question correctly
I can't overstate how important it is to have a keyboard that groups function keys into "islands" of (generally) 4 so you can touch-type them. An ergonomics consultant once observed that the source of my neck pain was that I looked at the keyboard while typing. As a touch-typist, I found this puzzling—until we realized it was just the function keys. :-)
Btw, LaunchBar (https://obdev.at/products/launchbar/index.html) makes an excellent 2nd-level util for things not common enough to merit a single keychord.
Yabai is my daily driver and I really like it.
That's what I do. I use fluxbox, but even Windows 10 has pretty decent built-in multi-desktop functionality.
Same keybindings.
win+a = app launcher
win+s = search windows
win+m = rename window
win+1-4 = wspace 1-4
shift+win+1-4 move to wspace 1-4
win + q = close window
win + r = reload cwm
Also, if you are a programmer and use non-ASCII punctuation (Spanish, French, German, Nordic):
setxkbmap us -option ctrl:swapcaps -option compose:menu -option compose:rwin
The US layout it's the best for programming, and with that setkbmap trick you can compose á-ú/ñ letters with ease.Function keys are faster / more direct for people that do 100% touch typing, right?
Linux Mint, as with many other windows shortcuts, has this also
On smaller-than-regular keyboards, such as 60% size, function keys already require one extra key held to activate (Fn+<number>, an upside is being closer to reach while on the home row), so they're already both equivalent in keypresses for such users.
You are using computers wrong.
Apple is the only one that lacks this. Windows and most linux WM have this for at least 20 years!
windows you just use WIN+[1,2,3,4...] to alternate between your quick launch apps.
Linux obviously you have a myriad of options. Including the top comment here now about using virtual desktops which is even better than application (but you can mix them too!)
And all that while still keeping your Fkeys functionality on each application!
The time I was forced to use a Mac for development was the time my productivity was lowest and frustration highest.
I'm fully convinced that Macs exist only because managers (and wanna be managers) make those decisions. Not to mention i've worked on employeer provided apple, dell, hp, lenovos... macs were the only ones i had to send to IT with failing keyboards, dead screens, etc.
I wonder who should leave the macOS team to have this finally addressed, like Jony Ive had to leave to make the Macbook hardware reasonable again.
And the culture that has formed around macOS users is to just accept it and buy numerous third apps to fix things that should be a standard feature of the OS.
My greatest annoyance with keyboards is that Fn keys (as found to one side of the left Ctrl/Control key; ubiquitous on laptops and common on other keyboards) are always implemented in firmware, and simply don’t do anything with most of the keys, but implement them in such a way that I can’t either.
My laptop’s keyboard has one Fn key, and 82 others.¹ I can only use Fn with 20 of them—one is legitimately handled in firmware², one does nothing³, two emit combos⁴, and 16 emit distinct key codes. The remaining 62 keys? They just get passed through as though I weren’t holding down the Fn key.
I really wish I could use that Fn key just as a regular additional modifier. I use Super+[hjkl] in my tiling window manager, why can’t I use Fn+[hjkl] instead if I want to?
Yes, I know that shifting it all from firmware to driver would cause inconvenience in some situations. Look, perhaps we could at least begin by adding a key code for Fn when it’s tapped by itself or with any of the 62 keys. I dunno, Hyper or something (is Hyper a thing at that level? or is there some other extra modifier available?). That’s sufficiently pragmatic, right?
—⁂—
¹ Asus Zephyrus G15 (2021), GA503QM. I included the power button as one of the 82 keys, as I use it that way: I have XF86PowerOff switch to a Sway/i3 mode where pressing it again shuts down, r reboots, h hibernates, &c. It’s fun being like most projectors with their “press the power button again to show you actually meant it”. But you know my favourite key on the keyboard? XF86AudioMicMute. Really not looking forward to the inevitable day when I get a laptop without one again.
² Fn+Super disables/enables the Super key. Windows things. Wish I could disable this feature, because just occasionally I accidentally trigger it, and I will never want it.
³ As far as I can tell, Fn+Space just gets swallowed. evtest on the appropriate /dev/input/event* file doesn’t show anything being emitted.
⁴ Fn+F6 = Super+Shift+S, and Fn+F9 = Super+P, because those are standard Windows shortcuts. I don’t get why they did it this way, though they’re both very common, given how much more interesting stuff they’ve done than most others. Mostly I’m just grumbling about duplicates because I already want Super+P to do something else, so now Fn+F9 is a dead weight, though I would otherwise have used it.
The firmwares used (e.g. QMK) allow you to build the sort of thing you're talking about into your keyboard and more.
In addition to custom firmware, the other benefit is some custom keyboards have designs which are more coherent than typical keyboards. (e.g. replacing the gigantic spacebar, with more keys so that the thumbs can be more useful).
(Edit: I mean no groupings at all, not about the size of groupings.)
(Not having to "home" on F and J helps.)
I can't rate it highly enough. It helped me finally step away from my decade-long i3wm-adhd addition, where everything else failed.
Or am I missing something obvious?
There 9 or 10 virtual desktops which are accessed with WIN+1-0.
1 is for shells, 2 is the IDE, 3/4 are browsers, 6 is administrative stuff, usually a root shell, 0 is for zoom, 5,7,8 are less defined or just "whatever doesn't fit". In addition I'm using the multi-monitor switching from xmonad in i3 (i.e. if I have [1] on the left and [2] on the right screen, when I activate [1] while on the right one, they switch places, if I activate [3], then it will replace [2] and [1] stays on the left one).
It sounds very pedantic but I don't even have to think when context switching and it's made my life a lot easier. Interestingly it doesn't work as well on my private computer because (to no one's surprise) I am using many more GUI tools and do different things when not working.
Source: am developer of the app ^_^
Many of the devs I work with use Spaces and the three-finger slide to move between apps. However this doesn't work if you're not using the trackpad or Magic Mouse.
Additionally, since I'm usually just moving between a few apps (VSCode, terminal, browser, Teams) it's usually pretty easy to just alt-tab or alt-tab-tab with no loss of context.
Being able to turn that down or off would be a boon to my productivity.
The idea is to use your spatial memory to switch/launch apps faster than anything else that I've found, with a smaller learning curve and less memorization.
You can use keyboard shortcuts with the arrow keys, modifier keys + cursor movement, or a trackpad gesture.
EDIT: oh duh "display with arrow keys". Nice. Going to try this out for a while. It's definitely way faster than cmd + tabbing through my many apps.
It natively supports 'profiles' for contextual actions if a given application is active, and 'folders', to extend the actions available given the 15 key limitation.
I believe there's also a SDK + plugin infrastructure which lets you define live-updating icons, but I haven't given this a try.
[0] https://www.elgato.com/en/stream-deck-mk2
* EDIT to differentiate from Steam Deck
I've got a little script to do the same for web pages, but I have an extended it yet to search for any open tab rather than just the ones that are currently active in the top window. I deal with this by having websites specific launchers.
(If possible, I wish these dynamic F-keys would make the keyboard taller instead of wider...)
So e.g. I have hyper+a for Alacritty, hyper+b for Browser etc.
meta+1-9 to switch workspaces, meta+various keys to launch applications (and can configure i3 to launch them into preferred workspaces if desired)
My favorite trick is not the function keys but other "useless" keys: like Caps is remapped to be Esc (when released before another key is pressed) or Control (when used in conjunction with another key: act as a modifier), my 2 shifts and 2 alt do their normal modifier function (when used in conjunction with another key) but when used by themselves act as PageUp/PageDown Home/End
Going up 2 pages up in the browser? Shift Shift. Top of the page? Alt. Bottom? The other Alt.
For the Control keys, as I don't need that many I've experimented with a few remapping, but BackSpace/Delete are very handy.
Going to the previous page in the browser? Alt+Control.
If I ever do need to see two things side-by-side, I’ve also got Rectangle for window positioning. A single cmd+caps lock+H/J/K/L for left-half/restore/maximise/right-half is all I’ve found is necessary.
Similarly, I use q + w for previous tab, q + e for next tab, and s+d to open the clipboard history from Alfred
Though I’d rather have function keys back instead of the touchbar, as changing volume/brightness now requires looking at the keyboard as well as a certain precision/dexterity.
Edit: formatting.
To each their own, but this feels unnecessary to me in my own personal workflow. I've never thought to myself "boy I wish I could open one specific app, that wasn't already open, with a single keystroke"
https://ldstephens.medium.com/launch-your-favorite-mac-apps-...
Alternatively, use a keyboard with QMK, or install a dedicated application like KMonad.
Don't get me wrong - if it works for you or OP, great! Keep doing it. I use Sway and KDE depending on what tickles my fancy.
For application launching, I just use Alt+Space and type the first few letters of what I want. My frequent flyers get assigned to Meta+Alt+Letter.
- Krunner / Rofi - Alt+Space (Meta+D was a bit contorted for me) - Meta+Enter - Konsole (KDE) / Kitty (Sway) - Meta+Shift+<1-0> - move active window to desktop - Meta+1-0 - switch to desktop #1-#10
A lot of apps use F-keys so it's not a good fit for me. When possible, I like to map custom shortcuts for various applications using F-keys.. not use it as an application launcher.
For example: With Dolphin, I've gotten used to F2 for renaming (Windows holdover), F3 for split file view, F4 for terminal, F5 for refresh
Kate or VS Code, I tend to map F5 to Build/Run/Debug.
I'd be curious as to why he finds the F keys faster. Perhaps not having to wait for the bar to appear, not having to "context switch" by thinking about the app's name and not having to type anything.
He talks about how one key is his music software for example, so by simply remembering F6 it skips having to even know what the app's name is and having to potentialy pick the second of third choice of a list. "[alt space] spotif... oh damn, no [backspace] it's itun... wait no I just switched to Tidal... [backspace] So [T] [enter] oops, I just opened the Terminal..."
Simply because it's a single key press, even no modifier is needed. So, yeah, it's faster and less thinking.
What I envision is having one master key combination to pull up a panel or overlay of some sort, which displays which key I press next to go to a certain place, or do a certain action. So there's just one thing to memorize.
Sort of like how vimium works in browser, where you press 'f', and each clickable gets a little label. (But preferably not randomly assigned)
The memorizing-most-commonly-used-50-keyboard-combination thing really doesn't work for me, whether it's home row or function keys. I mean, I still have to look at the little pictures for stove knobs after years of using the same stove, and that's just four knobs.
Windows is similar in just pressing the windows key allows you to type the name of an app or file but in my experience is much slower and inaccurate compared to OSX.
It's easier for me to remember the name of the app I want than that+the key binding with muscle memory I've then had to set.
https://www.google.com/search?q=manjaro+i3&source=lnms&tbm=i...
You could certainly write a short Rofi script to display them in a popup window and browse/select/execute them (via i3-msg).
I strongly recommend them for programming.
They save me so much time.
-- ~/.hammerspoon/init.lua
function define_shortcut(appName, key, mod)
hs.hotkey.bind(mod, key, function()
hs.application.enableSpotlightForNameSearches(true)
local app = hs.application.find(appName)
if app and app:isFrontmost() then
app:hide()
else
hs.application.open(appName)
end
end)
end
define_shortcut("Alacritty", "F1", {})
define_shortcut("Firefox", "F2", {})If I had Function keys: F1 = help, F2 = rename, F3 = repeat search, Alt+F4 = close, F5 = refresh, all context dependent, of course
On a Mac: Help = help, Return = rename, Command+G = find again, Command+W = close, Command+R = Refresh, usually consistent.
Maybe, one day, there will be truly customizable keyboards.
1. Open Automator.app and create a Quick action.
2. Drag "Launch Application" to the workflow and choose an application to open. Save it.
3. Open Preferences -> Shortcuts -> Services and assign a keyboard shortcut to your action. Unfortunately, macOS will not let you assign many combinations. The other annoying thing is that running the shortcut is not instantaneous, there seems to be a noticeable delay before the action executes.
Who organizes things around application anyway, instead of windows?
Anyway, no, it's bad to remap the Fn keys. They have been used to fast intra-application navigation since they appeared, and they are still in wide use. (Does the author not use application shortcuts?) Combining them with another key is just obvious.
macOS. There's no Alt+Tab, for example: no way to switch between two arbitrary windows on the Z-stack¹. The not-equivalent that exists is ⌘+Tab, and it switches apps; the usability of it, vs. Alt+Tab, is horrendous. (It fronts stuff you don't want, covering up stuff you do want.)
There are workspaces … but I have found them hard to get productive with: macOS will reorder keystrokes around workspace changes. That is, the keyboard input "abc ^→ (workspace change) def" is a race condition: typed quickly (within the animation delay), it becomes as if you typed "abcdef ^→".
¹no, ⌘+` does not count.
You can rebind it in settings, though at that point you may as well get the bonus features of 3rd party implementations.
I only mention this because it reminded me of one of my old laptops where Ctrl+Alt+F{1,3,5,7,9} worked, but Ctrl+Alt+F{2,4,6,8,0} didn’t, or the other way round, due to a bad keyboard matrix. That was inconvenient, because I was deliberately using three distinct X sessions at that time (personal, work, and I forget what the third was). For some reason that quite escapes me now, instead of just using every second virtual terminal, I instead added Ctrl+Alt+{1–9} mappings inside i3 to chvt {1–9}. I still occasionally have cause to pull out a second one, though mostly I use workspaces within the one session.
My guess is Apple users, as window switching in macOS is terribly fiddly when compared to application switching.
I use Alfred on macOS to quickly launch various apps and actions using the launcher hotkey plus a few chars. I don't have a problem with my workflow, and it syncs between my Macs.
I am doing similar with Albert on Linux, with the goal of someday moving back to Linux full-time.
At this point, I have a vast collection of workflows and snippet completions and I feel like my experience is pretty optimized for my tasks, but you do you.
I was actually excited when the Touch Bar came out because I though I would finally be able to just have named buttons, even click-through menus, instead of having to memorize what f1-f12 did on a given app.
Imagine if instead of “ok, f1 opens my [some application], I just need to memorize that” you could just add a button that says [some application]”.
Sadly the support for the Touch Bar was pretty middling to poor.
Edit: Also, dedicated media keys and a volume control wheel/knob are a must!
That's why I damn HATE the disappearance of classic MANY-keys keyboards...
The first standardisation within a GUI context I'm aware of was the Common User Access system on IBM PCs. That grew out of the early PC era within which different programs had their own idiosyncratic command-key conventions, several of which are listed in the Wikipedia article on the topic:
<https://en.wikipedia.org/wiki/IBM_Common_User_Access>
This still wasn't the first such standard. IBM already had fairly standardised function-key conventions under MVS and TSO/ISPF. The Unix world inherited emacs functions from ITS (as a set of macros over the TECO editor), vi keybindings, and a number of other conventions. Emacs commands have been incorporated into Readline, and are generally available on bash and similar shells.
There was a revision of CUA under Windows (whose name / initialism I forget), as well as a set of interface guidelines for Apple's classic Macintosh, as well as MacOS / OS X). Within the Linux world, GNOME and KDE offer the HIG, Human Interface Guidelines.
And various X11 window managers offer their own shortcuts and hotkeys (I've long used and extended a set for WindowMaker, for my own use, which incorporate some of the ideas in the submitted article).
There's also the browser environment, in which there are often conflicts: browser-versus-OS (window manager / GUI shell), browser-versus-webapps (e.g., a site's own specific keybindings), and browser-versus-extensions, such as, say, Vimperator, which provides a vi/vim-like keybinding interface to major browsers.
A key problem is that once a standard does emerge, interface conventions change, often profoundly. And independent evolved systems (e.g., Emacs, VIM, CUA, MS Windows, Apple Mac, ...) have a rather stubborn persistence measured in decades. Moving from mainframes to minis to PCs to GUIs and over the past decade to both mobile/touch- and Web-based applications, and arguably voice-based (Siri, Google, Alexa, Cortana, ...) are further confounding standards. Given that the user-base of smartphones / tablets is now roughly 10x that of desktop-based systems, design principles for smartphones seem to be driving desktop conventions, regardless of suitedness to task.
It's one of the well thought features that makes me stick with it.
So many keys, you say. Well, it takes me probably 1/10 the time to hit fn-F1.
Also, no extra app, Chrome is just CMD-<space>,c-h<enter>.
A related comment above: https://news.ycombinator.com/item?id=34246255